home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / pc / LOGIC Apple II 5.25" Library - DOS Part 3 / DOS077A.dsk / SUPER CATALOG BUILDER.bas < prev    next >
BASIC Source File  |  2012-02-16  |  3KB  |  125 lines

  1. 5  HIMEM: 37886
  2. 10  HOME : PRINT "SUPER CATALOG BUILDER"
  3. 15 D$ =  CHR$(4)
  4. 25  PRINT D$;"BLOAD SUPER CATALOG BUILDER.X"
  5. 30  DIM B$(200)
  6. 35  HTAB 1: VTAB 12
  7. 45  CALL  -958
  8. 50  INPUT "FILE NAME = ";DN$
  9. 55 SECTAR = 12
  10. 60 :
  11. 61  REM  ** READ DISKETTE **
  12. 62  REM  **   DIRECTORY   **
  13. 63 :
  14. 65  POKE 38159,SECTAR
  15. 70 :I = 37897
  16. 80  CALL 38144
  17. 100 :
  18. 101  REM  ** READ MEMORY **
  19. 102  REM  **    DUMP     **
  20. 103 :
  21. 110  FOR M = 1 TO 7
  22. 120  FOR J = 0 TO 34
  23. 200 :
  24. 201  REM  ** READ FIRST 3 **
  25. 202  REM  **     BYTES    **
  26. 203 :
  27. 210  IF J >2  THEN 300
  28. 215 K =  PEEK(J +I)
  29. 220 :
  30. 221  REM  ** FINISH IF FILE **
  31. 222  REM  **   NOT LINKED   **  
  32. 223 :
  33. 225  IF K = 0  AND J = 0  THEN 515
  34. 230 :
  35. 231  REM  * SKIP DELETED FILES *
  36. 232 :
  37. 235  IF K = 255  AND J = 0  THEN 237
  38. 236  GOTO 245
  39. 237 J = 35
  40. 240  IF J <2  THEN 400
  41. 242 ::::J = 35: GOTO 400
  42. 245 :
  43. 246  REM  * READ FILE TYPE *
  44. 247 :
  45. 250  IF K = 0  OR K = 128  THEN TY$ = "INFO       "
  46. 260  IF K = 1  OR K = 129  THEN TY$ = "BASIC      "
  47. 270  IF K = 2  OR K = 130  THEN TY$ = "APPLESOFT  "
  48. 280  IF K = 4  OR K = 132  THEN TY$ = "BINARY     "
  49. 290  GOTO 400
  50. 300 :
  51. 301  REM  ** READ FILE NAME **
  52. 302 :
  53. 305  IF J >30  THEN 400
  54. 310 KL =  PEEK(J +I) -128
  55. 315 :
  56. 316  REM  * ELIMINATE CONTROL *
  57. 317  REM  *     CHARACTERS     *
  58. 318 :
  59. 320  IF KL <32  OR KL >94  THEN 400
  60. 325 A$ = A$ + CHR$(KL)
  61. 400  NEXT 
  62. 405 :
  63. 406  REM  * SKIP DELETED **
  64. 407  REM  *     FILES    **
  65. 408 :
  66. 410  IF K =  >255  THEN 435
  67. 415 :
  68. 416  REM  ** LOAD MATRIX **
  69. 417  REM  * WITH FILE NAME *
  70. 418 :
  71. 420 Y = Y +1
  72. 425 B$(Y) = A$ +TY$ +DN$
  73. 426  VTAB 23: INVERSE 
  74. 427  PRINT Y: NORMAL 
  75. 430 A$ = ""
  76. 435 I = I +35: NEXT 
  77. 500 :
  78. 501  REM  * PREPARE TO READ *
  79. 502  REM  *   NEXT SECTOR   *
  80. 503 :
  81. 505 :SECTAR = SECTAR -1
  82. 510  IF SECTAR >1  THEN 65
  83. 515  VTAB 20: PRINT "FREE SPACE = "; FRE(X)
  84. 517  VTAB 22
  85. 520  PRINT "CONTINUE (Y/N) ? ";
  86. 525  GET QA$
  87. 530  IF QA$ = "Y"  THEN 35
  88. 535  IF QA$ = "N"  THEN 700
  89. 540  GOTO 517
  90. 575  GOTO 35
  91. 600 :
  92. 601  REM  * WRITE CATALOG *
  93. 602 :
  94. 607  PRINT D$;"OPEN SUPER CAT"
  95. 610  PRINT D$;"WRITE SUPER CAT"
  96. 611  PRINT Y
  97. 615  FOR J = 1 TO Y
  98. 620  PRINT B$(J)
  99. 625  NEXT 
  100. 630  PRINT D$;"CLOSE"
  101. 635  END 
  102. 700 :
  103. 701  REM   ** OPEN OR APPEND ** 
  104. 702 :
  105. 705  HTAB 1: VTAB 16
  106. 706  CALL  -958
  107. 715  PRINT "OPEN OR APPEND   O/A              ";
  108. 716  GET DN$
  109. 717  PRINT 
  110. 720  IF DN$ = "A"  THEN 800
  111. 725  IF DN$ = "O"  THEN 607
  112. 730  GOTO 705
  113. 800  PRINT D$;"APPEND SUPER CAT"
  114. 810  PRINT D$;"WRITE SUPER CAT"
  115. 820  FOR J = 1 TO Y
  116. 830  PRINT B$(J)
  117. 840  NEXT 
  118. 850  PRINT D$;"OPEN SUPER CAT"
  119. 860  PRINT D$;"READ SUPER CAT"
  120. 870  INPUT YY
  121. 880  PRINT D$;"OPEN SUPER CAT"
  122. 890  PRINT D$;"WRITE SUPER CAT"
  123. 900  PRINT YY +Y
  124. 910  PRINT D$;"CLOSE"
  125. 920  END